Since the dawn of distributed computing, there has been a need for message senders and receivers to mutually authenticate each other, authorize requests, and protect confidentiality of sensitive message data. This can be particularly important in scenarios involving sensitive data, such as financial transactions. Existing legacy processes for creating secure connections can result in less security than preferred or require undesired overhead and result in inflexibility in the connected architectures.